12#ifndef AOM_AV1_ENCODER_SPEED_FEATURES_H_
13#define AOM_AV1_ENCODER_SPEED_FEATURES_H_
16#include "av1/encoder/enc_enums.h"
17#include "av1/encoder/mcomp.h"
18#include "av1/encoder/encodemb.h"
27#define MAX_MESH_STEP 4
29typedef struct MESH_PATTERN {
36 GM_REDUCED_REF_SEARCH_SKIP_L2_L3,
37 GM_REDUCED_REF_SEARCH_SKIP_L2_L3_ARF2,
41 GM_SEARCH_CLOSEST_REFS_ONLY,
44} UENUM1BYTE(GM_SEARCH_TYPE);
47 DIST_WTD_COMP_ENABLED,
48 DIST_WTD_COMP_SKIP_MV_SEARCH,
49 DIST_WTD_COMP_DISABLED,
50} UENUM1BYTE(DIST_WTD_COMP_FLAG);
53 INTRA_ALL = (1 << DC_PRED) | (1 << V_PRED) | (1 << H_PRED) | (1 << D45_PRED) |
54 (1 << D135_PRED) | (1 << D113_PRED) | (1 << D157_PRED) |
55 (1 << D203_PRED) | (1 << D67_PRED) | (1 << SMOOTH_PRED) |
56 (1 << SMOOTH_V_PRED) | (1 << SMOOTH_H_PRED) | (1 << PAETH_PRED),
58 (1 << UV_DC_PRED) | (1 << UV_V_PRED) | (1 << UV_H_PRED) |
59 (1 << UV_D45_PRED) | (1 << UV_D135_PRED) | (1 << UV_D113_PRED) |
60 (1 << UV_D157_PRED) | (1 << UV_D203_PRED) | (1 << UV_D67_PRED) |
61 (1 << UV_SMOOTH_PRED) | (1 << UV_SMOOTH_V_PRED) |
62 (1 << UV_SMOOTH_H_PRED) | (1 << UV_PAETH_PRED) | (1 << UV_CFL_PRED),
63 UV_INTRA_DC = (1 << UV_DC_PRED),
64 UV_INTRA_DC_CFL = (1 << UV_DC_PRED) | (1 << UV_CFL_PRED),
65 UV_INTRA_DC_TM = (1 << UV_DC_PRED) | (1 << UV_PAETH_PRED),
66 UV_INTRA_DC_PAETH_CFL =
67 (1 << UV_DC_PRED) | (1 << UV_PAETH_PRED) | (1 << UV_CFL_PRED),
68 UV_INTRA_DC_H_V = (1 << UV_DC_PRED) | (1 << UV_V_PRED) | (1 << UV_H_PRED),
69 UV_INTRA_DC_H_V_CFL = (1 << UV_DC_PRED) | (1 << UV_V_PRED) |
70 (1 << UV_H_PRED) | (1 << UV_CFL_PRED),
71 UV_INTRA_DC_PAETH_H_V = (1 << UV_DC_PRED) | (1 << UV_PAETH_PRED) |
72 (1 << UV_V_PRED) | (1 << UV_H_PRED),
73 UV_INTRA_DC_PAETH_H_V_CFL = (1 << UV_DC_PRED) | (1 << UV_PAETH_PRED) |
74 (1 << UV_V_PRED) | (1 << UV_H_PRED) |
76 INTRA_DC = (1 << DC_PRED),
77 INTRA_DC_TM = (1 << DC_PRED) | (1 << PAETH_PRED),
78 INTRA_DC_H_V = (1 << DC_PRED) | (1 << V_PRED) | (1 << H_PRED),
80 (1 << DC_PRED) | (1 << V_PRED) | (1 << H_PRED) | (1 << SMOOTH_PRED),
82 (1 << DC_PRED) | (1 << PAETH_PRED) | (1 << V_PRED) | (1 << H_PRED)
86 INTER_ALL = (1 << NEARESTMV) | (1 << NEARMV) | (1 << GLOBALMV) |
87 (1 << NEWMV) | (1 << NEAREST_NEARESTMV) | (1 << NEAR_NEARMV) |
88 (1 << NEW_NEWMV) | (1 << NEAREST_NEWMV) | (1 << NEAR_NEWMV) |
89 (1 << NEW_NEARMV) | (1 << NEW_NEARESTMV) | (1 << GLOBAL_GLOBALMV),
90 INTER_NEAREST_NEAR_ZERO = (1 << NEARESTMV) | (1 << NEARMV) | (1 << GLOBALMV) |
91 (1 << NEAREST_NEARESTMV) | (1 << GLOBAL_GLOBALMV) |
92 (1 << NEAREST_NEWMV) | (1 << NEW_NEARESTMV) |
93 (1 << NEW_NEARMV) | (1 << NEAR_NEWMV) |
96 (1 << NEARESTMV) | (1 << NEARMV) | (1 << GLOBALMV) | (1 << NEWMV),
100 DISABLE_ALL_INTER_SPLIT = (1 << THR_COMP_GA) | (1 << THR_COMP_LA) |
101 (1 << THR_ALTR) | (1 << THR_GOLD) | (1 << THR_LAST),
103 DISABLE_ALL_SPLIT = (1 << THR_INTRA) | DISABLE_ALL_INTER_SPLIT,
105 DISABLE_COMPOUND_SPLIT = (1 << THR_COMP_GA) | (1 << THR_COMP_LA),
107 LAST_AND_INTRA_SPLIT_ONLY = (1 << THR_COMP_GA) | (1 << THR_COMP_LA) |
108 (1 << THR_ALTR) | (1 << THR_GOLD)
120} UENUM1BYTE(DEV_SPEED_FEATURES);
133 ALLOW_RECODE_KFARFGF = 1,
138} UENUM1BYTE(RECODE_LOOP_TYPE);
142 SUBPEL_TREE_PRUNED = 1,
143 SUBPEL_TREE_PRUNED_MORE = 2,
144 SUBPEL_SEARCH_METHODS
145} UENUM1BYTE(SUBPEL_SEARCH_METHOD);
149 LPF_PICK_FROM_FULL_IMAGE,
151 LPF_PICK_FROM_FULL_IMAGE_NON_DUAL,
153 LPF_PICK_FROM_SUBIMAGE,
158} UENUM1BYTE(LPF_PICK_METHOD);
180 FLAG_EARLY_TERMINATE = 1 << 0,
183 FLAG_SKIP_COMP_BESTINTRA = 1 << 1,
186 FLAG_SKIP_INTRA_BESTINTER = 1 << 3,
190 FLAG_SKIP_INTRA_DIRMISMATCH = 1 << 4,
193 FLAG_SKIP_INTRA_LOWVAR = 1 << 5,
194} UENUM1BYTE(MODE_SEARCH_SKIP_LOGIC);
208} UENUM1BYTE(TX_TYPE_PRUNE_MODE);
216 FAST_DETECTION_MAXQ = 1,
217} UENUM1BYTE(OVERSHOOT_DETECTION_CBR);
223 MULTI_WINNER_MODE_OFF = 0,
226 MULTI_WINNER_MODE_FAST = 1,
230 MULTI_WINNER_MODE_DEFAULT = 2,
233 MULTI_WINNER_MODE_LEVELS,
234} UENUM1BYTE(MULTI_WINNER_MODE_TYPE);
237 PRUNE_NEARMV_OFF = 0,
238 PRUNE_NEARMV_LEVEL1 = 1,
239 PRUNE_NEARMV_LEVEL2 = 2,
240 PRUNE_NEARMV_LEVEL3 = 3,
241 PRUNE_NEARMV_MAX = PRUNE_NEARMV_LEVEL3,
242} UENUM1BYTE(PRUNE_NEARMV_LEVEL);
248 TX_SEARCH_DEFAULT = 0,
250 TX_SEARCH_MOTION_MODE,
252 TX_SEARCH_COMP_TYPE_MODE,
255} UENUM1BYTE(TX_SEARCH_CASE);
258 TX_TYPE_PRUNE_MODE prune_2d_txfm_mode;
264 int fast_intra_tx_type_search;
271 int fast_inter_tx_type_prob_thresh;
275 int use_reduced_intra_txset;
279 int use_skip_flag_prediction;
282 int ml_tx_split_thresh;
289 int prune_tx_type_using_stats;
291 int prune_tx_type_est_rd;
297 int winner_mode_tx_type_pruning;
310#if CONFIG_RT_ML_PARTITIONING
314} UENUM1BYTE(PARTITION_SEARCH_TYPE);
321} UENUM1BYTE(MAX_PART_PRED_MODE);
327} UENUM1BYTE(MV_PREC_LOGIC);
333} UENUM1BYTE(SUPERRES_AUTO_SEARCH_TYPE);
545typedef struct TPL_SPEED_FEATURES {
553 int gop_length_decision_method;
557 int prune_intra_modes;
559 int reduce_first_step_size;
566 int skip_alike_starting_mv;
569 SUBPEL_FORCE_STOP subpel_force_stop;
572 SEARCH_METHODS search_method;
575 int prune_starting_mv;
578 int prune_ref_frames_in_tpl;
581 int allow_compound_pred;
584 int use_y_only_rate_distortion;
593 int use_sad_for_mode_decision;
597 int reduce_num_frames;
600typedef struct GLOBAL_MOTION_SPEED_FEATURES {
601 GM_SEARCH_TYPE gm_search_type;
606 int prune_ref_frame_for_gm_search;
617 int disable_gm_search_based_on_stats;
620 int downsample_level;
623 int num_refinement_steps;
628 int gm_erroradv_tr_level;
629} GLOBAL_MOTION_SPEED_FEATURES;
631typedef struct PARTITION_SPEED_FEATURES {
632 PARTITION_SEARCH_TYPE partition_search_type;
635 BLOCK_SIZE fixed_partition_size;
641 int prune_ext_partition_types_search_level;
644 int prune_part4_search;
648 int ml_prune_partition;
653 int ml_early_term_after_part_split_level;
658 int less_rectangular_check_level;
661 BLOCK_SIZE use_square_partition_only_threshold;
666 MAX_PART_PRED_MODE auto_max_partition_based_on_simple_motion;
670 BLOCK_SIZE default_min_partition_size;
671 BLOCK_SIZE default_max_partition_size;
677 int adjust_var_based_rd_partitioning;
680 int64_t partition_search_breakout_dist_thr;
681 int partition_search_breakout_rate_thr;
684 float ml_partition_search_breakout_thresh[PARTITION_BLOCK_SIZES];
687 int ml_partition_search_breakout_model_index;
690 int ml_4_partition_search_level_index;
696 int simple_motion_search_prune_agg;
700 int simple_motion_search_prune_rect;
707 int simple_motion_search_split;
711 int simple_motion_search_early_term_none;
717 int simple_motion_search_reduce_search_steps;
722 BLOCK_SIZE max_intra_bsize;
729 int intra_cnn_based_part_prune_level;
733 BLOCK_SIZE ext_partition_eval_thresh;
736 int ext_part_eval_based_on_cur_best;
739 int rect_partition_eval_thresh;
746 int prune_ext_part_using_split_info;
752 int prune_rectangular_split_based_on_qidx;
764 bool prune_rect_part_using_4x4_var_deviation;
786 bool prune_rect_part_using_none_pred_mode;
790 int early_term_after_none_split;
796 int ml_predict_breakout_level;
802 int prune_sub_8x8_partition_level;
806 int simple_motion_search_rect_split;
839 int reuse_prev_rd_results_for_part_ab;
843 int reuse_best_prediction_for_part_ab;
853 int use_best_rd_for_pruning;
861 int skip_non_sq_part_based_on_none;
864 int disable_8x8_part_based_on_qidx;
868 bool prune_h_or_v_4part_using_sms_info;
873 int split_partition_penalty_level;
874} PARTITION_SPEED_FEATURES;
876typedef struct MV_SPEED_FEATURES {
878 SEARCH_METHODS search_method;
886 int use_bsize_dependent_search_method;
890 int auto_mv_step_size;
896 SUBPEL_SEARCH_METHOD subpel_search_method;
899 int subpel_iters_per_step;
902 SUBPEL_FORCE_STOP subpel_force_stop;
905 SUBPEL_FORCE_STOP simple_motion_subpel_force_stop;
909 SUBPEL_SEARCH_TYPE use_accurate_subpel_search;
912 int exhaustive_searches_thresh;
915 MESH_PATTERN mesh_patterns[MAX_MESH_STEP];
918 MESH_PATTERN intrabc_mesh_patterns[MAX_MESH_STEP];
921 int reduce_search_range;
927 int use_fullpel_costlist;
932 int obmc_full_pixel_search_level;
935 int full_pixel_search_level;
943 int prune_intrabc_candidate_block_hash_search;
949 int intrabc_search_level;
954 int hash_max_8x8_intrabc_blocks;
967 int use_downsampled_sad;
970 int disable_extensive_joint_motion_search;
976 int disable_second_mv;
985 int skip_fullpel_search_using_startmv_refmv;
989 WARP_SEARCH_METHOD warp_search_method;
992 int warp_search_iters;
995typedef struct INTER_MODE_SPEED_FEATURES {
1002 int inter_mode_rd_model_estimation;
1008 int txfm_rd_gate_level[TX_SEARCH_CASES];
1011 int reduce_inter_modes;
1015 int adaptive_rd_thresh;
1018 int prune_inter_modes_if_skippable;
1023 int selective_ref_frame;
1029 int prune_ref_frame_for_rect_partitions;
1035 int alt_ref_search_fp;
1041 int prune_single_ref;
1055 int prune_comp_ref_frames;
1069 int skip_newmv_in_drl;
1075 int skip_repeated_ref_mv;
1078 int perform_best_rd_based_gating_for_chroma;
1082 int reuse_inter_intra_mode;
1086 int prune_comp_type_by_model_rd;
1090 int prune_comp_type_by_comp_avg;
1098 int prune_comp_search_by_single_result;
1103 int prune_mode_search_simple_translation;
1108 int prune_compound_using_single_ref;
1117 int prune_ext_comp_using_neighbors;
1120 int skip_ext_comp_nearmv_mode;
1127 int prune_comp_using_best_single_mode_ref;
1133 int prune_nearest_near_mv_using_refmv_weight;
1136 int prune_ref_mv_idx_search;
1139 int disable_onesided_comp;
1143 int prune_obmc_prob_thresh;
1146 int prune_warped_prob_thresh;
1149 unsigned int disable_interintra_wedge_var_thresh;
1152 unsigned int disable_interinter_wedge_var_thresh;
1155 int fast_interintra_wedge_search;
1158 int fast_wedge_sign_estimate;
1161 int disable_interinter_wedge_newmv_search;
1164 DIST_WTD_COMP_FLAG use_dist_wtd_comp_flag;
1180 int prune_inter_modes_based_on_tpl;
1184 PRUNE_NEARMV_LEVEL prune_nearmv_using_neighbors;
1189 int model_based_post_interp_filter_breakout;
1194 int reuse_compound_type_decision;
1197 int disable_masked_comp;
1213 int enable_fast_compound_mode_search;
1216 int reuse_mask_search_results;
1219 int enable_fast_wedge_mask_search;
1222 int inter_mode_txfm_breakout;
1228 int limit_inter_mode_cands;
1232 int limit_txfm_eval_per_mode;
1235 int extra_prune_warped;
1246 int skip_arf_compound;
1251 float bias_warp_mode_rd_scale_pct;
1256 float bias_obmc_mode_rd_scale_pct;
1261 float bias_gm_mode_rd_scale_pct;
1267 int skip_cmp_using_top_cmp_avg_est_rd_lvl;
1270 int skip_interinter_wedge_search_based_on_mse;
1273 int enable_comp_wedge_search_using_model_rd;
1274} INTER_MODE_SPEED_FEATURES;
1276typedef struct INTERP_FILTER_SPEED_FEATURES {
1279 int use_fast_interpolation_filter_search;
1282 int disable_dual_filter;
1287 int use_interp_filter;
1291 int skip_sharp_interp_filter_search;
1294 int cb_pred_filter_search;
1297 int adaptive_interp_filter_search;
1301 int skip_interp_filter_search;
1304 int use_more_sharp_interp;
1308 int skip_model_rd_uv;
1309} INTERP_FILTER_SPEED_FEATURES;
1311typedef struct INTRA_MODE_SPEED_FEATURES {
1314 int intra_y_mode_mask[TX_SIZES];
1315 int intra_uv_mode_mask[TX_SIZES];
1318 int skip_intra_in_interframe;
1324 int intra_pruning_with_hog;
1330 int chroma_intra_pruning_with_hog;
1333 int disable_smooth_intra;
1344 bool prune_smooth_intra_mode_for_chroma;
1350 int prune_filter_intra_level;
1359 int prune_palette_search_level;
1379 int prune_luma_palette_size_search_level;
1385 int prune_chroma_modes_using_luma_winner;
1401 int cfl_search_range;
1406 int top_intra_model_count_allowed;
1410 int adapt_top_model_rd_count_using_neighbors;
1420 int prune_luma_odd_delta_angles_in_intra;
1432 int early_term_chroma_palette_size_search;
1436 int skip_filter_intra_in_inter_frames;
1437} INTRA_MODE_SPEED_FEATURES;
1439typedef struct TX_SPEED_FEATURES {
1443 int inter_tx_size_search_init_depth_sqr;
1444 int inter_tx_size_search_init_depth_rect;
1445 int intra_tx_size_search_init_depth_sqr;
1446 int intra_tx_size_search_init_depth_rect;
1450 int tx_size_search_lgr_block;
1452 TX_TYPE_SEARCH tx_type_search;
1462 int adaptive_txb_search_level;
1467 int model_based_prune_tx_search_level;
1470 int refine_fast_tx_search_results;
1475 int prune_tx_size_level;
1486 bool prune_intra_tx_depths_using_nn;
1501 bool use_rd_based_breakout_for_intra_tx_search;
1507 int prune_inter_tx_split_rd_eval_lvl;
1510 int use_chroma_trellis_rd_mult;
1513typedef struct RD_CALC_SPEED_FEATURES {
1515 int simple_model_rd_from_var;
1539 int tx_domain_dist_level;
1542 int tx_domain_dist_thres_level;
1545 TRELLIS_OPT_TYPE optimize_coefficients;
1552 int perform_coeff_opt;
1553} RD_CALC_SPEED_FEATURES;
1555typedef struct WINNER_MODE_SPEED_FEATURES {
1558 int enable_winner_mode_for_coeff_opt;
1562 int enable_winner_mode_for_tx_size_srch;
1570 int tx_size_search_level;
1574 int enable_winner_mode_for_use_tx_domain_dist;
1577 MULTI_WINNER_MODE_TYPE multi_winner_mode_type;
1582 int motion_mode_for_winner_cand;
1589 int dc_blk_pred_level;
1594 int winner_mode_ifs;
1608 int prune_winner_mode_eval_level;
1609} WINNER_MODE_SPEED_FEATURES;
1611typedef struct LOOP_FILTER_SPEED_FEATURES {
1613 LPF_PICK_METHOD lpf_pick;
1617 int use_coarse_filter_level_search;
1621 int adaptive_luma_loop_filter_skip;
1626 int skip_loop_filter_using_filt_error;
1635 bool zero_low_cdef_strengths;
1642 int adaptive_cdef_mode;
1647 int dual_sgr_penalty_level;
1656 int switchable_lr_with_bias_level;
1666 int enable_sgr_ep_pruning;
1669 int disable_loop_restoration_chroma;
1672 int disable_loop_restoration_luma;
1678 int min_lr_unit_size;
1679 int max_lr_unit_size;
1685 int prune_wiener_based_on_src_var;
1692 int prune_sgr_based_on_wiener;
1695 int reduce_wiener_window_size;
1698 bool disable_wiener_filter;
1701 bool disable_sgr_filter;
1704 bool disable_wiener_coeff_refine_search;
1707 int use_downsampled_wiener_stats;
1708} LOOP_FILTER_SPEED_FEATURES;
1710typedef struct REAL_TIME_SPEED_FEATURES {
1712 int check_intra_pred_nonrd;
1719 int skip_intra_pred;
1726 int estimate_motion_for_var_based_partition;
1733 int nonrd_check_partition_merge_mode;
1736 int nonrd_check_partition_split;
1741 unsigned int mode_search_skip_flags;
1747 int nonrd_prune_ref_frame_search;
1750 int use_nonrd_pick_mode;
1755 int discount_color_cost;
1758 int use_nonrd_altref_frame;
1761 int use_comp_ref_nonrd;
1765 int ref_frame_comp_nonrd[3];
1768 int use_real_time_ref_set;
1772 int short_circuit_low_temp_var;
1775 int reuse_inter_pred_nonrd;
1778 int num_inter_modes_for_tx_search;
1781 int use_nonrd_filter_search;
1784 int use_simple_rd_model;
1791 int hybrid_intra_pickmode;
1800 int prune_palette_search_nonrd;
1803 int source_metrics_sb_nonrd;
1807 OVERSHOOT_DETECTION_CBR overshoot_detection_cbr;
1810 int check_scene_detection;
1813 int rc_adjust_keyframe;
1816 int rc_compute_spatial_var_sc_kf;
1820 int prefer_large_partition_blocks;
1823 int use_temporal_noise_estimate;
1829 int fullpel_search_step_param;
1836 int intra_y_mode_bsize_mask_nrd[BLOCK_SIZES];
1844 bool prune_hv_pred_modes_using_src_sad;
1847 int nonrd_aggressive_skip;
1859 int selective_cdf_update;
1863 int rt_prune_intrabc_nonrd;
1869 int rt_intrabc_miss_mode;
1872 int force_only_last_ref;
1876 int force_large_partition_blocks_intra;
1881 int use_fast_fixed_part;
1884 int increase_source_sad_thresh;
1887 int skip_tx_no_split_var_based_partition;
1891 int skip_newmv_mode_based_on_sse;
1898 int prune_inter_modes_with_golden_ref;
1901 int prune_inter_modes_wrt_gf_arf_based_on_sad;
1905 int prune_inter_modes_using_temp_var;
1912 int reduce_mv_pel_precision_highmotion;
1919 int reduce_mv_pel_precision_lowcomplex;
1922 BLOCK_SIZE prune_intra_mode_based_on_mv_range;
1926 int var_part_split_threshold_shift;
1933 int var_part_based_on_qidx;
1936 int gf_refresh_based_on_qp;
1949 int prune_idtx_nonrd;
1952 int dct_only_palette_nonrd;
1964 int thresh_active_maps_skip_lf_cdef;
1971 int part_early_exit_zeromv;
1977 int sad_based_adp_altref_lag;
1980 int partition_direct_merging;
1983 int tx_size_level_based_on_qstep;
1993 bool vbp_prune_16x16_split_using_min_max_sub_blk_var;
2008 int screen_content_cdef_filter_qindex_thresh;
2012 bool prune_compoundmode_with_singlecompound_var;
2017 bool frame_level_mode_cost_update;
2027 bool prune_h_pred_using_best_mode_so_far;
2038 bool enable_intra_mode_pruning_using_neighbors;
2047 bool prune_intra_mode_using_best_sad_so_far;
2052 bool check_only_zero_zeromv_on_large_blocks;
2055 bool disable_cdf_update_non_reference_frame;
2058 bool prune_compoundmode_with_singlemode_var;
2062 bool skip_compound_based_on_var;
2069 int set_zeromv_skip_based_on_source_sad;
2074 bool use_adaptive_subpel_search;
2080 bool enable_ref_short_signaling;
2084 bool check_globalmv_on_single_ref;
2089 bool increase_color_thresh_palette;
2092 int higher_thresh_scene_detection;
2095 int skip_newmv_flat_blocks_screen;
2098 int skip_encoding_non_reference_slide_change;
2102 int rc_faster_convergence_static;
2105 int skip_newmv_mode_sad_screen;
2106} REAL_TIME_SPEED_FEATURES;
static int prune_zero_mv_with_sse(const aom_variance_fn_ptr_t *fn_ptr, const MACROBLOCK *x, BLOCK_SIZE bsize, const HandleInterModeArgs *args, int prune_zero_mv_with_sse)
Prunes ZeroMV Search Using Best NEWMV's SSE.
Definition rdopt.c:2826
void av1_set_speed_features_framesize_independent(struct AV1_COMP *cpi, int speed)
Frame size independent speed vs quality trade off flags.
void av1_set_speed_features_qindex_dependent(struct AV1_COMP *cpi, int speed)
Q index dependent speed vs quality trade off flags.
void av1_set_speed_features_framesize_dependent(struct AV1_COMP *cpi, int speed)
Frame size dependent speed vs quality trade off flags.
INTERNAL_COST_UPDATE_TYPE
This enum decides internally how often to update the entropy costs.
Definition speed_features.h:351
@ INTERNAL_COST_UPD_OFF
Definition speed_features.h:352
@ INTERNAL_COST_UPD_SBROW_SET
Definition speed_features.h:354
@ INTERNAL_COST_UPD_SBROW
Definition speed_features.h:355
@ INTERNAL_COST_UPD_SB
Definition speed_features.h:356
@ INTERNAL_COST_UPD_TILE
Definition speed_features.h:353
INTER_SEARCH_EARLY_TERM_IDX
This enumeration defines inter search early termination index in non-rd path based on sse value.
Definition speed_features.h:397
@ EARLY_TERM_INDICES
Definition speed_features.h:408
@ EARLY_TERM_IDX_1
Definition speed_features.h:400
@ EARLY_TERM_IDX_4
Definition speed_features.h:406
@ EARLY_TERM_IDX_2
Definition speed_features.h:402
@ EARLY_TERM_DISABLED
Definition speed_features.h:398
@ EARLY_TERM_IDX_3
Definition speed_features.h:404
SIMPLE_MOTION_SEARCH_PRUNE_LEVEL
This enumeration defines a variety of simple motion search based partition prune levels.
Definition speed_features.h:363
@ QIDX_BASED_AGG_LVL1
Definition speed_features.h:371
@ SIMPLE_AGG_LVL3
Definition speed_features.h:368
@ SIMPLE_AGG_LVL5
Definition speed_features.h:370
@ TOTAL_SIMPLE_AGG_LVLS
Definition speed_features.h:374
@ SIMPLE_AGG_LVL1
Definition speed_features.h:366
@ SIMPLE_AGG_LVL0
Definition speed_features.h:365
@ TOTAL_AGG_LVLS
Definition speed_features.h:380
@ SIMPLE_AGG_LVL4
Definition speed_features.h:369
@ SIMPLE_AGG_LVL2
Definition speed_features.h:367
@ TOTAL_QINDEX_BASED_AGG_LVLS
Definition speed_features.h:376
PRUNE_MESH_SEARCH_LEVEL
This enumeration defines a variety of mesh search prune levels.
Definition speed_features.h:387
@ PRUNE_MESH_SEARCH_LVL_1
Definition speed_features.h:389
@ PRUNE_MESH_SEARCH_LVL_2
Definition speed_features.h:390
@ PRUNE_MESH_SEARCH_DISABLED
Definition speed_features.h:388
CDEF_PICK_METHOD
This enumeration defines a variety of CDEF pick methods.
Definition speed_features.h:164
@ CDEF_FAST_SEARCH_LVL2
Definition speed_features.h:167
@ CDEF_FAST_SEARCH_LVL5
Definition speed_features.h:171
@ CDEF_FAST_SEARCH_LVL1
Definition speed_features.h:166
@ CDEF_FULL_SEARCH
Definition speed_features.h:165
@ CDEF_PICK_FROM_Q
Definition speed_features.h:172
@ CDEF_FAST_SEARCH_LVL4
Definition speed_features.h:170
@ CDEF_FAST_SEARCH_LVL3
Definition speed_features.h:168
Top level encoder structure.
Definition encoder.h:2907
int speed
Definition encoder.h:3134
Definition speed_features.h:519
int disable_recon
Skips reconstruction by using source buffers for prediction.
Definition speed_features.h:536
int reduce_mv_step_param
Reduces the mv search window. By default, the initial search window is around MIN(MIN(dims),...
Definition speed_features.h:526
int skip_zeromv_motion_search
Skips the motion search centered on 0,0 mv.
Definition speed_features.h:541
int skip_motion_search_threshold
Skips the motion search when the zero mv has small sse.
Definition speed_features.h:531
Sequence/frame level speed vs quality features.
Definition speed_features.h:414
int adjust_num_frames_for_arf_filtering
Definition speed_features.h:469
int weighted_chroma_distortion
Definition speed_features.h:513
int allow_sub_blk_me_in_tf
Definition speed_features.h:491
int second_alt_ref_filtering
Definition speed_features.h:459
int frame_parameter_update
Definition speed_features.h:416
int weight_calc_level_in_tf
Definition speed_features.h:483
MV_PREC_LOGIC high_precision_mv_usage
Definition speed_features.h:435
int ref_frame_mvs_lvl
Definition speed_features.h:499
int disable_extra_sc_testing
Definition speed_features.h:454
int screen_detection_mode2_fast_detection
Definition speed_features.h:506
int recode_tolerance
Definition speed_features.h:427
SUPERRES_AUTO_SEARCH_TYPE superres_auto_search_type
Definition speed_features.h:449
int static_segmentation
Definition speed_features.h:444
int accurate_bit_estimate
Definition speed_features.h:476
RECODE_LOOP_TYPE recode_loop
Definition speed_features.h:421
Top level speed vs quality trade off data struture.
Definition speed_features.h:2113
MV_SPEED_FEATURES mv_sf
Definition speed_features.h:2142
TPL_SPEED_FEATURES tpl_sf
Definition speed_features.h:2127
LOOP_FILTER_SPEED_FEATURES lpf_sf
Definition speed_features.h:2177
TX_SPEED_FEATURES tx_sf
Definition speed_features.h:2162
INTER_MODE_SPEED_FEATURES inter_sf
Definition speed_features.h:2147
RD_CALC_SPEED_FEATURES rd_sf
Definition speed_features.h:2167
PARTITION_SPEED_FEATURES part_sf
Definition speed_features.h:2137
GLOBAL_MOTION_SPEED_FEATURES gm_sf
Definition speed_features.h:2132
INTERP_FILTER_SPEED_FEATURES interp_sf
Definition speed_features.h:2152
FIRST_PASS_SPEED_FEATURES fp_sf
Definition speed_features.h:2122
INTRA_MODE_SPEED_FEATURES intra_sf
Definition speed_features.h:2157
WINNER_MODE_SPEED_FEATURES winner_mode_sf
Definition speed_features.h:2172
REAL_TIME_SPEED_FEATURES rt_sf
Definition speed_features.h:2182
HIGH_LEVEL_SPEED_FEATURES hl_sf
Definition speed_features.h:2117